#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project : GTMS_pytest_auto_api 
@File    : redisControl.py
@IDE     : PyCharm 
@Author  : Mario
@Date    : 2022/5/20 12:14 
@Describe: redis读取封装
"""
import redis


class RedisHandler:
    def __init__(self, host='localhost', port='6379', db='1', password=None, decode_responses=True):
        """
        构造函数
        :param host:连接地址
        :param port:连接端口
        :param db:默认数据库：1
        :param password:连接密码
        """
        # redis实例化
        self.conn_redis = redis.Redis(host, port, db, password, decode_responses=decode_responses)

    def get_redis_value(self, key):
        """
        查询redis_key对应值
        :param key: 需要查询值的key
        :return: 查询结果
        """
        # 判断需要删除的值是否存在
        tag = self.conn_redis.exists(key)
        if tag:
            redis_value = self.conn_redis.get(key)
            self.conn_redis.close()
            return redis_value
        else:
            self.conn_redis.close()

    def set_redis_value(self, key, value, time=None):
        """
        redis设置给key值
        :param key: 键名
        :param value: 键值
        :param time: 失效时间
        :return: None
        """
        self.conn_redis.set(key, value, time)
        self.conn_redis.close()

    def delete_redis_key(self, key):
        """
        删除redis对应值
        :param key: 需要删除的KEY
        :return:
        """
        # 判断需要删除的值是否存在
        tag = self.conn_redis.exists(key)
        if tag:
            self.conn_redis.delete(key)
        else:
            self.conn_redis.close()
